package com.note.app.service;

import com.note.app.dto.SearchRequestDTO;
import com.note.app.dto.SearchResultDTO;
import com.note.common.domain.Note;
import com.note.common.vo.PageResult;

/**
 * 搜索服务接口
 */
public interface SearchService {

    /**
     * 搜索笔记
     *
     * @param userId        用户ID
     * @param searchRequest 搜索请求
     * @return 搜索结果
     */
    PageResult<SearchResultDTO> searchNotes(Long userId, SearchRequestDTO searchRequest);

    /**
     * 索引单个笔记
     *
     * @param note 笔记对象
     * @return 是否成功
     */
    boolean indexNote(Note note);

    /**
     * 从索引中删除笔记
     *
     * @param noteId 笔记ID
     * @return 是否成功
     */
    boolean deleteNoteIndex(Long noteId);
} 